Partially-disconnected operation (PDO), also referred to as disconnected operation, is a term of art for distributed systems that can continue to operate even when portions of the distributed system become isolated or partitioned from each other by network failures or interruptions. Partial refers to the limited capabilities of distributed systems while experiencing these network connectivity issues. During PDO, some operations get delayed or are prevented because they require system-wide consensus by all nodes of the distributed system before taking effect. For example, consider a distributed database system wherein each database node stores a full copy of the database. Clients “see” the database as a single, logical entity, although the database persists on multiple nodes. So, when a client connects to a first node and performs a write operation on the database, those changes propagate to all other database nodes. Consequently, clients connecting to other nodes within the distributed database system see a version of the database with those changes. In this way, queries to the database can be answered locally or by the closest node to the querying client. Network connectivity issues can interrupt these changes from propagating between the nodes and, as a result, can cause inconsistent database versions between nodes.
Thus write operations within a distributed database often have both local and global requirements. Local requirements include updating a node's own local copy of the database in accordance with the write operation. Global requirements, on the other hand, include updating each copy of the database stored on other nodes within the distributed database system such that the same database version (or state) persists amongst all database nodes. During PDO such write operations cannot propagate to all database nodes, and so they fail to satisfy the global requirements. For example, consider that nodes of a first group of database nodes can communicate with one another via a network, but become isolated from a second group of nodes because of a network failure such as a router malfunction. This scenario often occurs during network interruptions between two or more groups of nodes physically located in different geographic regions. For instance, if the first group of nodes is located in North America and the second group of nodes is located in Europe, such network interruptions prevent transactions committed by the first group of nodes from propagating to the second group of nodes, and vice-versa. So, to avoid having an inconsistent database version between the two groups of nodes, distributed database systems suspend all processing of transactions entirely, or at least have one group of nodes automatically stop processing transactions in response to determining presence of a network connectivity issue.
These and other features of the present embodiments will be understood better by reading the following detailed description, taken together with the figures herein described. The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing.